﻿using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.TestHost;
using Microsoft.Extensions.Hosting;
using System.Threading.Tasks;
using Xunit;

namespace FurStudyxUnitTest
{
    public class UnitTest2
    {
        /// <summary>
        /// Web集成测试
        /// 这种方式的好处就是无需在启动中调用Inject.Create()初始化，每一个测试方法都有独立的生命周期，不会污染全局
        /// </summary>
        /// <returns></returns>
        [Fact]
        public async Task Test_Web()
        {
            // 创建一个测试服务
            using var testServer = new TestServer(WebHost.CreateDefaultBuilder()
                .Inject()
                .UseStartup<Startup>()); // 这里的Startup就是你Web层的Startup

            // 创建一个HttpClient客户端
            using var httpClient = testServer.CreateClient();

            // 测试Api
            var result = await httpClient.GetStringAsync("/api/user/1");
            //Assert.AreEqual("Study", result.Name);
        }
    }
}
